package com.yida.system.service;

import java.util.List;

import com.yida.system.api.domain.SysUserUkey;

/**
 * @author hmh
 * @date 2023/04/14
 */
public interface ISysUserUkeyService {

    /**
     * 获取绑定UKey信息
     * 
     * @param sysUKeyUser
     * @return
     */
    List<SysUserUkey> selectSysUserUkeyList(SysUserUkey sysUKeyUser);

    /**
     * 获取绑定key信息
     * 
     * @param userId
     * @return
     */
    SysUserUkey selectSysUserKeyInfo(Long userId);

    /**
     * 根据用户名获取对应的代签信息（包括pin和rnd待签串）给前端，由前端生成签名数据后，交由后端比对是否一致
     * 
     * @param userName 用户名
     * @return
     */
    SysUserUkey getWaitSignMsgByUserName(String userName, String ukeyId);

    /**
     * 检测待签串是否一致（校验前端传入待签串）
     * 
     * @param sysUKeyUser
     * @return
     */
    boolean checkSign(SysUserUkey sysUKeyUser);

    /**
     * 根据UkeyId获取PIN码
     * 
     * @param UkeyId ukeyId
     * @return
     */
    String getPinByUKeyId(String UkeyId);

    /**
     * 获取pin信息
     * 
     * @return
     */
    String getPin();

    /**
     * 绑定对应用户Ukey信息
     * 
     * @param sysUKeyUser
     * @return
     */
    int bindUkey(SysUserUkey sysUKeyUser);

    /**
     * 根据用户ID进行UKey绑定
     * 
     * @param sysUKeyUser
     * @return
     */
    boolean bindUkeyByUserId(SysUserUkey sysUKeyUser);

    /**
     * 解除对应用户Ukey信息
     * 
     * @param sysUKeyUser
     * @return
     */
    int unbindingUkey(SysUserUkey sysUKeyUser);

    /**
     * 切换UKey状态
     * 
     * @param sysUKeyUser
     * @return
     */
    int changeUkeyStatus(SysUserUkey sysUKeyUser);

    /**
     * 删除用户绑定信息
     * 
     * @param userId
     * @return
     */
    int delUkeyInfo(Long userId);

}
